package core.protocol;


public interface ProtocolAD extends Runnable{

	/**
	 * Algorithm implemented
	 * @author L5D
	 *
	 */
	public enum Type{
		Bully,
		ChangRobert,
		DolevKlaweRodeh;
	}
	
	/**
	 * Add a client
	 * @param node
	 */
	public void addNeighbour(int node);
	
	/**
	 * Remove a client
	 * @param node
	 */
	public void removeNeighbour(int node);

	/**
	 * Signal a timeout error to the protocol
	 * @param dest
	 */
	public void timeoutProtocol(int dest);
	
	/**
	 * Start a election
	 */
	public void startElection();
}
